{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "e79bd7c2-38de-4cd8-9c9f-43f8fa201303",
   "metadata": {},
   "outputs": [],
   "source": [
    "from sdhdf import SDHDF\n",
    "s = SDHDF('sdhdf_test_data/uwl_191208_055418.hdf')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "5aa8e72e-9b68-4e35-8c8c-7a579ee7332f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<SDHDF file: uwl_191208_055418.hdf>"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "s"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "47d4aeae-70be-4ee8-b58a-e3cd980a3465",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "DATE                    : 2020-02-03-10:25:11 \n",
      "HDR_DEFN                : SDHDF               \n",
      "HDR_DEFN_VERSION        : 1.9                 \n",
      "FILE_FORMAT             : HDF                 \n",
      "FILE_FORMAT_VERSION     : 5.0                 \n",
      "SCHED_BLOCK_ID          : 6183                \n",
      "CAL_MODE                : ON                  \n",
      "INSTRUMENT              : Medusa              \n",
      "OBSERVER                : gre469              \n",
      "PID                     : P737                \n",
      "RECEIVER                : UWL                 \n",
      "TELESCOPE               : Parkes              \n",
      "UTC_START               : 2019-12-08-05:54:18 \n",
      "N_BEAMS                 : 1                   \n"
     ]
    }
   ],
   "source": [
    "s.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "7f62dab2-c4f5-4e6a-b7cd-1387178cd6f1",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div><i>SDHDFTable length=1</i>\n",
       "<table id=\"table140652138123216\" class=\"table-striped table-bordered table-condensed\">\n",
       "<thead><tr><th>LABEL</th><th>N_BANDS</th><th>SOURCE</th></tr></thead>\n",
       "<thead><tr><th>bytes6</th><th>int64</th><th>bytes14</th></tr></thead>\n",
       "<tr><td>beam_0</td><td>2</td><td>G351p417+0p645</td></tr>\n",
       "</table></div>"
      ],
      "text/plain": [
       "<SDHDFTable length=1>\n",
       "LABEL  N_BANDS     SOURCE    \n",
       "bytes6  int64     bytes14    \n",
       "------ ------- --------------\n",
       "beam_0       2 G351p417+0p645"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "s.metadata.beam_params"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "c2b55960-863e-453e-b4eb-39f39aa519e6",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div><i>SDHDFTable length=2</i>\n",
       "<table id=\"table140651858534992\" class=\"table-striped table-bordered table-condensed\">\n",
       "<thead><tr><th>LABEL</th><th>CENTRE_FREQ</th><th>LOW_FREQ</th><th>HIGH_FREQ</th><th>N_CHANS</th><th>N_POLS</th><th>POL_TYPE</th><th>DUMP_TIME</th><th>N_DUMPS</th></tr></thead>\n",
       "<thead><tr><th></th><th>MHz</th><th>MHz</th><th>MHz</th><th></th><th></th><th></th><th>s</th><th></th></tr></thead>\n",
       "<thead><tr><th>bytes8</th><th>float64</th><th>float64</th><th>float64</th><th>int64</th><th>int64</th><th>bytes8</th><th>float64</th><th>int64</th></tr></thead>\n",
       "<tr><td>band_SB7</td><td>1664.0</td><td>1600.0</td><td>1728.0</td><td>128</td><td>4</td><td>AABBCRCI</td><td>5.0</td><td>35</td></tr>\n",
       "<tr><td>band_SB8</td><td>1792.0</td><td>1728.0</td><td>1856.0</td><td>128</td><td>4</td><td>AABBCRCI</td><td>5.0</td><td>35</td></tr>\n",
       "</table></div>"
      ],
      "text/plain": [
       "<SDHDFTable length=2>\n",
       " LABEL   CENTRE_FREQ LOW_FREQ HIGH_FREQ N_CHANS N_POLS POL_TYPE DUMP_TIME N_DUMPS\n",
       "             MHz       MHz       MHz                                s            \n",
       " bytes8    float64   float64   float64   int64  int64   bytes8   float64   int64 \n",
       "-------- ----------- -------- --------- ------- ------ -------- --------- -------\n",
       "band_SB7      1664.0   1600.0    1728.0     128      4 AABBCRCI       5.0      35\n",
       "band_SB8      1792.0   1728.0    1856.0     128      4 AABBCRCI       5.0      35"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "s.data.beam_0.metadata.band_params"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "0ec0a14c-3012-4289-b71d-2db6386d3c80",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['beam_0/band_SB7/metadata/cal_obs_params',\n",
       " 'beam_0/band_SB7/metadata/obs_params',\n",
       " 'beam_0/band_SB8/metadata/cal_obs_params',\n",
       " 'beam_0/band_SB8/metadata/obs_params',\n",
       " 'beam_0/metadata/band_params',\n",
       " 'beam_0/metadata/cal_band_params',\n",
       " 'config/backend_config',\n",
       " 'config/cal_backend_config',\n",
       " 'metadata/beam_params',\n",
       " 'metadata/history',\n",
       " 'metadata/primary_header',\n",
       " 'metadata/software_versions']"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "s.list_tables()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "c0a23b98-507f-48d1-813f-e466247d510a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['beam_0/band_SB7/astronomy_data/data',\n",
       " 'beam_0/band_SB7/calibrator_data/cal_data_off',\n",
       " 'beam_0/band_SB7/calibrator_data/cal_data_on',\n",
       " 'beam_0/band_SB8/astronomy_data/data',\n",
       " 'beam_0/band_SB8/calibrator_data/cal_data_off',\n",
       " 'beam_0/band_SB8/calibrator_data/cal_data_on']"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "s.list_datasets()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "36531d17-daff-45af-acca-cab47db743d8",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAsgAAAJGCAYAAABGEXPeAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAABqWklEQVR4nO3deXxcddn//9eVpU1XurI1lBRkh9Ji2BQQq0hBWW4EBBVuoF9RuOEnCKiINxRuRUQQURSsCAVBdigoOyKboNCWUgJlKbSU0D2la5pmmev3x5y0p8kkmWTOnDNJ3s/HYx6d+ZzPnHPlYphz5ZPP+Rxzd0REREREJK0o6QBERERERAqJCmQRERERkRAVyCIiIiIiISqQRURERERCVCCLiIiIiISoQBYRERERCemxBbKZ3WJmS82sKou+o83sn2b2upnNNrMj44hRRERERApPjy2QganAxCz7/hS4193HAycBf8hXUCIiIiJS2HpsgezuLwArwm1mtqOZPWFmM8zsRTPbtbk7MDh4vgWwMMZQRURERKSAlCQdQMymAN9z9/fNbH/SI8UTgMnAU2Z2LjAA+HJyIYqIiIhIknpNgWxmA4HPAfeZWXNz3+Dfk4Gp7n6tmR0I/MXM9nT3VAKhioiIiEiCek2BTHo6yUp3H5dh2ySC+cru/oqZlQEjgKXxhSciIiIihaDHzkFuyd1XA/PM7AQAS9s72LwA+FLQvhtQBixLJFARERERSZS5e9Ix5IWZ3QUcSnokeAlwGfAscCOwDVAK3O3uV5jZ7sCfgIGkL9j7obs/lUTcIiIiIpKsHlsgi4iIiIh0Ra+ZYiEiIiIiko0eeZHeiBEjvKKiIukwRERERKSAzZgxY7m7j2zZ3iML5IqKCqZPn550GCIiIiJSwMzso0ztmmIhIiIiIhKiAllEREREJEQFskgnTPvd47z9yrtJhyEiIiJ51CPnIIvky++/fwsAT6fuSzgSERGR9jU0NFBdXU1dXV3SoSSurKyM8vJySktLs+qvAllERESkB6qurmbQoEFUVFRgZkmHkxh3p6amhurqasaMGZPVezTFQkRERKQHqqurY/jw4b26OAYwM4YPH96pkXQVyCIiIiI9VG8vjpt1Ng8qkEVEREREQlQgi4iIiEheFBcXM27cOPbcc09OOOEEamtr2+w7depUzjnnnDa3H3PMMRx44IEZt33/+99n1KhRpFKpnGMGFcgiIiIikif9+vVj1qxZVFVV0adPH2666aYu7WflypXMnDmTlStXMm/evM22pVIpHnroIbbbbjteeOGFKMJWgSwiIiIi+XfwwQczd+5cVqxYwbHHHsvYsWM54IADmD17dofvfeCBBzjqqKM46aSTuPvuuzfb9s9//pM999yTs846i7vuuiuSWLXMm4iIiEgP94fzbuWDN+ZHus8d967g7N+cnlXfxsZGHn/8cSZOnMhll13G+PHjmTZtGs8++yynnnoqs2bNavf9d911F5dddhlbbbUVxx9/PBdffPFm204++WSOOeYYfvKTn9DQ0JD1esdt0QiyiIiIiOTF+vXrGTduHJWVlYwePZpJkybx0ksvccoppwAwYcIEampqWLVqVZv7WLJkCXPnzuWggw5i5513pqSkhKqqKgDq6+t57LHHOPbYYxk8eDD7778/Tz31VM5xawRZREREpIfLdqQ3as1zkMPcvVW/9pZhu+eee/j000833uRj9erV3H333fzsZz/jiSeeYNWqVey1114A1NbW0r9/f7761a/mFLdGkEVa+NUZv+fZv76YdBgiIiI90iGHHMKdd94JwHPPPceIESMYPHhwm/3vuusunnjiCebPn8/8+fOZMWPGxnnId911FzfffPPGbfPmzeOpp55qd7WMbKhAFmnhqanP8Ytv/zbpMERERHqkyZMnM336dMaOHcuPf/xjbrvttjb7zp8/nwULFnDAAQdsbBszZgyDBw/m+eef58knn9xstHjAgAEcdNBB/O1vf8spRk2xEBEREZG8WLt2bau2YcOG8fDDD7dqP+200zjttNM2a6uoqOCTTz5p1XfmzJkArFixotW2Bx98sIvRbqIRZBERERGREBXIIiIiIiIhsUyxMLMfZNFtnbv/Me/BiIiIiPQS7t7uChG9RaaVM9oT1wjyRcBAYFA7jwtiikVERESkxysrK6OmpqbTxWFP4+7U1NRQVlaW9XviukjvL+5+RXsdzGxAG+3bAbcDWwMpYIq7Xx99iCIiIiI9R3l5OdXV1SxbtizpUBJXVlZGeXl51v1jKZDd/Yc59GkELnD3mWY2CJhhZk+7+9uRBikiIiLSg5SWlm68uYZ0TqwX6ZnZ981ssKX92cxmmtlX2nuPuy9y95nB8zXAHGBUHPGKiIiISO8T9yoWZ7j7auAr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\n",
      "text/plain": [
       "<Figure size 720x576 with 4 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "wf = s.data.beam_0.band_SB7.astronomy_data.data\n",
    "wf.plot_spectrum()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "5f9f0ffe-6f1f-4810-81ab-7648f78f425b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<SDHDF Waterfall: ['time', 'beam', 'polarization', 'frequency', 'bin'] | (182, 1, 4, 262144, 1)>"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "wf"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 91,
   "id": "a7b86b27-d979-4fff-a440-793a4778fdea",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "524288"
      ]
     },
     "execution_count": 91,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import h5py\n",
    "262144 * 2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "ca9b3038-6313-4bdb-9f9f-4cfab72df9dc",
   "metadata": {},
   "outputs": [],
   "source": [
    "freq_axis = 1\n",
    "n_subband = 2\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 90,
   "id": "387d58d8-2d12-4a66-af33-1b1f5bcd61d3",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAD4CAYAAAD8Zh1EAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAAAjwUlEQVR4nO3deXxU5b0/8M83CTsICAERgUClqGBRTAUUKaJWFqu1V1u8RautRepSrde2UKtWq5b2qi9rvT8oLtdflbovVUHEja0KGJBA2LewQ4JAAgnZv/ePOUlmJjPJmZlz5myf9+uVV07OnDnn+0xmvvOc5zzPc0RVQURE3pfhdABERGQNJnQiIp9gQici8gkmdCIin2BCJyLyiSynDty9e3fNyclx6vBERJ60cuXKQ6qaHesxxxJ6Tk4O8vLynDo8EZEnicjOeI+xyYWIyCeY0ImIfIIJnYjIJ5jQiYh8ggmdiMgnmNCJiHyCCZ2IyCdMJXQRuVNECkRknYjcFePxMSJSIiKrjZ/7LY+UiMil1uw5irV7SpwOo+WBRSIyBMDPAZwPoArAfBGZq6pbojZdoqpX2BAjEZFrXfn0UqwxknnhjImOxmKmhn4mgGWqWq6qNQAWAbja3rCIiLxhTVjNvLbO2RsGmUnoBQBGi0g3EWkPYAKAPjG2Gyki+SLygYgMtjRKIiIPuOPlVY4ev8UmF1XdICJ/BvARgOMA8gHURG22CkA/VT0uIhMAvANgYPS+RGQKgCkA0Ldv39QiJyJymXlrDzh6fFMXRVX1OVUdpqqjARwGsCXq8VJVPW4szwPQSkS6x9jPbFXNVdXc7OyYk4UREXlaTW2dY8c228ulh/G7L4AfAHg56vFTRESM5fON/X5tbahERO53y4srHTu22elz3xSRbgCqAdymqkdEZCoAqOosANcA+IWI1AA4AWCSqjp7dYCIyAGfbCxy7NimErqqXhRj3ayw5acBPG1hXERElCCOFCUi8gkmdCIin2BCJyLyCSZ0IiKfYEInIvIJJnQiIp9gQici8gkmdCIin2BCJyLXuffttRjz3585HYbnmB36T0SUNnOW73I6BE9iDZ2IyGKXPrHIkeMyoRMRWWxr0XFHjsuETkRkg5Ly6rQfkwmdiMgGP5r9RdqPyYRORJ6xcFMR9peccDoMUzYeOJb2YzKhE5Fn3Pi/X2L8X5c4HYZrMaETkass3x777pVPfrwZAHDUgbZpr2BCJyJX+dHsZTHXP/nxlpjrqRETOhGRTzChE5HrVVTXOh2CJzChE5HrnahiQjeDCZ2IXE/E3HYFe0uQM20uPt96yN6AXIoJnYhcT2Auo3+xLdRD5tONRXaG41pM6ETkepsOpn+QjhcxoRORa+05Ug4AeC9/X9xt9h49gbdW7QEAKDQtcbkVEzoRudYnG0JNJy8u2xmxft/RxuH/P5z1Be5+LR9VNXUN68y2ufsNEzoRuVb96NBoF8z4tGH5QGkFAODReRugwa6gM6ETkXvU1UVm5PBadzy1xnNe+LywYZ0EtIrOhE5ErvHYgk0Rf5cl2P+8/utg9uLtDe3qQcKETkSusWLH4ZSeH962fvdr+dh9uDzVkFKyZs/RtB6PCZ2IXKOsqqbJuqPlVaafvyxqpsbfvb025ZhSceXT/07rl4qphC4id4pIgYisE5G7YjwuIvKUiGwVkTUiMszySInI97YcbHovzscXxL4wGt3eHsv+koqUY0pVaUX6pvttMaGLyBAAPwdwPoChAK4QkYFRm40HMND4mQJgpsVxElEAJNJJZc7yndj5dVnEuugRpUGbO91MDf1MAMtUtVxVawAsAnB11DZXAfiHhiwD0EVEelkcKxH5nCbQ73D3kRP4uiyyOSa6c0ulC2ZpNDttgRXMJPQCAKNFpJuItAcwAUCfqG16A9gd9vceY10EEZkiInkikldcXJxszETkUyZaURos3lyMmtrIJ0TXyI9VNm2TT7d09qBsMaGr6gYAfwbwEYD5APIBRL9KsUJu8q9R1dmqmququdnZ2UmES0RBEy8hbjxwDDMXbo1YVz/IyE2OGBd19x09YapffSpMXRRV1edUdZiqjgZwGED0vaD2ILLWfhqA+JMvEBFZ4LNN7j/TX7XzCCqqa3HBjE/x2zfX2Hoss71cehi/+wL4AYCXozZ5F8ANRm+XEQBKVHW/pZESEXlUZXWoZv7JhoO2HsdsP/Q3RWQ9gPcA3KaqR0RkqohMNR6fB2A7gK0AngFwq/WhEhF5z2MLNuO40b++tKKmyURjVsoys5GqXhRj3aywZQVwm4VxEVFAfL7tEP7zmeX48K7RTodimwvDJhO7750CXD+iny3H4UhRInLU/IIDAJqO8qTEMaETkSvE64MezHkTk8OETkSOyjD6JQZ8KnNLMKETkaOKj1cCADbHuW/ooTLzk3MFHRM6ETlq7ppQD+eXV+xu9nFqGRM6EZFPMKETRVm65RAWbXb/CESiaKb6oRMFyeTnlgMACmdMdDgSosSwhk5E5BNM6EREafav1Xtt2S8TOhFRmv3h3XW27JcJnYjIJ5jQiYh8ggmdiMgnmNCJwpScCNZd4slfmNCJwmyJM58IkZXEpjtHM6ETEaXZYZsmHGNCJyLyCSZ0IiKfYEInIvIJJnQiIp9gQicKE975YPfhcucCIUoCEzpRHOVVtU6HQJQQJnQiIp9gQici8gkmdCJynRtG9nM6BE9iQieKw6bR2WTCQ1cNcToET2JCJ4rALO4nPzi3t9MhpBUTOhF5zvt3jIr4e9zgU2JuNyC7QzrCcQ0mdKII2rDEurp7DendOeLv8WefggtP7+ZQNO7BhE4Ux8HSSqdDIJN6d2mH52/8ttNhOM5UQheRX4nIOhEpEJGXRaRt1ONjRKRERFYbP/fbEy5R+kx+brnTIZBJIoI2WZkonDERhTMmOh2OY7Ja2kBEegP4JYCzVPWEiLwGYBKAF6I2XaKqV1gfIlE6saHFi9gjKcRsk0sWgHYikgWgPYB99oVERJSYrIzIjP7rywc5FImzWkzoqroXwGMAdgHYD6BEVRfE2HSkiOSLyAciMjjWvkRkiojkiUhecXFxSoETkb+1yTJ/ie/sqIukU0YPsDocT2jxFRORrgCuAtAfwKkAOojI5KjNVgHop6pDAfwNwDux9qWqs1U1V1Vzs7OzUwqciPztlu98w/S2dt2j02vMfAVeCmCHqharajWAtwBcEL6Bqpaq6nFjeR6AViLS3fJoiSgwJg/vm/I+VFvexk/MJPRdAEaISHsJfQ1eAmBD+AYicorxGETkfGO/X1sdLBEFR+sEmlyiBbW+bqYNfTmANxBqVllrPGe2iEwVkanGZtcAKBCRfABPAZikGrTvRvIDnrm7R5f2rZt9/IkfDk1TJN7RYrdFAFDVBwA8ELV6VtjjTwN42sK4iIiadfW5vXH3a/lOh+EqHClKRJ7EC6FNmaqhU6OcaXMx6dt9MOM/vuV0KESB9/m0sQl1b/Q7vhJJeOXL3U6HQBQ4Q/t0abLu1C7t0K1jm/QH41JM6ETkCUGb2zwZTOhE5CpXx0ncnB63ZWxDN2n17qMor6pxOgwi38vMiHexkxdBW8KEbtL3/+ffTodADig5UY3O7Vo5HUagRE+0VS+ZoS1BGwzDJheiZqzYcdjpEAInXg29Xzfzt5MLapdGJnQicpV+3drHXJ/KVABBwVeIKEww63XucnbvLg3LfU5u51wgHsSETkSu0q1j4xwuj197jnOBeBATOlEzlm/npKHp9s2enRqWe57EQUOJYEInasaWouNOhxBowkawhDChk+WOlFU5HQL5REA7qySNCZ0s9V7+Ppz7x4+watcRp0MhH+hhNLnceEGOs4E049TObZ0OoQEHFpGlvjDanNfvK8Wwvl0djiZxQe2/7FZtsjJROGOi02E0y0338mENnagZ7vmoErWMCZ1swURIbuCiynNaMKGTpfzWYOG38gRFUP9vTOhEzQhYBY88jgk9ICprarHv6In0HdAn57puuuBF1BIm9ID41aurccGMT1FTW2frcdhJhALHRW96JvSA+Hh9EQCgNk01Tr/Uaz/fxqH/5B1M6GQpvw3Vrq3zy1eTN0wZPcDpEDyNA4uIyBVm/ngYxp/dy+kwPI01dLIFryVSolzUFO1ZTOhkKa9/KD0ePgUcE3rAsOZM7mX916mm4fK8mz5TTOhR1u0rQcHeEqfDsF6aq57sv02JinNv6KR4/UwxWbwoGmXiU0sBwPUzvLlVQD9H5FJBq1ewhk5EvhPUaZBNJXQR+ZWIrBORAhF5WUTaRj0uIvKUiGwVkTUiMsyecMkrAlYxIgtk2JCEg/Y+bDGhi0hvAL8EkKuqQwBkApgUtdl4AAONnykAZlocJ3mE12tGHg/f0/jap85sk0sWgHYikgWgPYB9UY9fBeAfGrIMQBcR4QiBAAta2yWlzpaEnoY3Yjp60pjVYkJX1b0AHgOwC8B+ACWquiBqs94Adof9vcdYF0FEpohInojkFRcXJx81JYyVH3P4ReQf6azxjxvcM30Ha4aZJpeuCNXA+wM4FUAHEZkcvVmMpzb5aKjqbFXNVdXc7OzsZOIlIp+yYx6gdH0/d2nfOk1Hap6ZJpdLAexQ1WJVrQbwFoALorbZA6BP2N+noWmzDAUIK7qUMIvzeRDPSs0k9F0ARohIewld8boEwIaobd4FcIPR22UEQs0y+y2OlTyAF7YoWR5tQneVFgcWqepyEXkDwCoANQC+AjBbRKYaj88CMA/ABABbAZQDuMm2iInIl6zuIeX1HlfJMDVSVFUfAPBA1OpZYY8rgNssjItskq4aC4f+U6JsqaFzLhei5PntBhfkXel8J7rlZIAJPWDc8sZzKxdVtgLHlpGiAfuHMqETkStYnc+DWHlhQidLef1D5PHwKeCY0E24dc5Kp0PwnKCd6lLq7LkoGixM6CbMW3vA6RAsY3ei9XoNN2gJwFUsH1iUnnejm94zTOgB4fWmEPI/W4b+py3buuMDxoROtnDTDHTkDZZXOtyRY9OKCZ0sxTMBSpZXBxa5CRM6EbmC5UP/Ld2bNzChky282suFUxY4x54bXNiwzzjGDHJ+SnAm9ICx+xQ0iBMiUfo8c0MunrruXFPbpuutWF8HmH19bnoO2Awm9Dhyps11OgRLcY4Vcjsz79DLzuqJK4eeanqf6aqgiwCts5xPp85HQL7EhgtKlOVD/wNYiWFCJ0v58SNUVVPndAgBYUc/9PRWLd67fVRajxeNCZ2oBXW8UJoWfpic6+zTOqf/oGGY0MkWzIGUKN6CLnVM6AFj+xvcj20ulBbe7Yfunm8NJvSASPfpZ6rdI49VVGPlzsMWRZOaoNXynOLlbuhuqccwoTdj19flTodgmXQlJat6Fkx9aSX+Y+YXKKussWR/VqmorkV1LS+S2sH6NvT0pNlDx6twtLw6LcdqCRN6M/70wQanQ7CcV8b9rN1TAgCoqbX2m+jZJduxcueRhJ4TfrZxxn3zMe7JxZbGRCFenm1x7tr96TlQC7KcDsDNRICSE+745vUatzZTPDw39CVdOGNiQs/bWnQMa4wvmW3FZZbHRdbzSN3FUkzozaipVewvOeF0GJ7ilTOARKgClz7BWrnd7HjvcLbFADtcVhXx94L1B1Fd4683hFtrzm4R6+WxutmHYuN86KljQjdsOXgMw/74UZP1VbW1DkRjPT/WnO0Q6wtv6EML0h9IAJWesP4CeNAqMEzohhWFsbvIcfbAxFj9agXtlDnIauqs7T0UxE8uE3oLMnyW0OvqFE9/ugUlLulmFY9TX6Q++3d7ykltWzkdgucxoRvidZny2+d76dZDeGzBZjzwboGtx+GNIihRHdpkWrq/IJ5dM6EbVu+O3TfZbzX0KmNQTFmVPdcG7H65dhwqs3VgD7+HnGNHAnaiYpHTrX3aj1mPCd3wWt6emOt9ls8b2P0+t2P/B0oqcPFjC/HIXP8N+CLrz4ad+uzOu/MiZw4MJvTAqH9vp1oLUlXc+/ZarNtXEuc49n2KjpSHupUu2/61bccg59hxNuzECVf71s4N72kxoYvIIBFZHfZTKiJ3RW0zRkRKwra537aIySLJvdWLj1VizvJduPF/v7Q4HvPsPLvw6xmZF2RmeHW2Rfdo8atEVTcBOAcARCQTwF4Ab8fYdImqXmFpdGS5+jd5sknR7NPsyLn1yZZdGcmsoF0TSbTJ5RIA21R1px3BkP0ak2Jy6j8g8Wo/dtZw03GPyKAlADfx6myLbpJoQp8E4OU4j40UkXwR+UBEBsfaQESmiEieiOQVFxcneGhnbCs+7nQItkj26n997TjZz8qtc1YiZ9rc5J5cHwOTri/Z0svFobO5M3ud5MhxTSd0EWkN4EoAr8d4eBWAfqo6FMDfALwTax+qOltVc1U1Nzs7O4lw0++ZJdsdOe7B0grc83o+aqzuopfi+7uxht78hy9e0p239kDSx451dlF0rAKj/vwpb+TsA16cyiVexeja805Lw9GbSqSGPh7AKlU9GP2Aqpaq6nFjeR6AViLS3aIYHVWwt9SR4w5/9BO8sXIPfvf2Wkv2V1/7SbnJpWF/cY6T5H7jHi8s0Fj7Pv+RT7DnyAnc9MIKi49MfmD32VxVnApXxzbO9HRJJKFfhzjNLSJyihgZQ0TON/bLvmUWcMudUKI52ToZq1a063B67y5VfwMOso71bejW7i+W6Bla03nsWEwldBFpD+AyAG+FrZsqIlONP68BUCAi+QCeAjBJOfY7JVd8qxcAYMLZvSzZX/S/I+leLiafaEfbZXNnF7sPn0BdnRXHNLeP7z291IJjUbjWmdYOizl0vApzlu+ydJ/R4k2tbNXnNlGmXkFVLVfVbqpaErZulqrOMpafVtXBqjpUVUeo6ud2BRwUVvfJrZeRwn7Lq2qwZMshAM1cwLK1atL8vifNXmbjsYNFVS36gjSvW8c2aT2eFWrjvEYdHGpy4R2LAiL6bZfIR7Wmtg4K4PdvF+Ctr/Y2rK+rU7y5ag+uPrc3sqJqV1adn8XcTZx9ryg8jGtmfo7Xp47E/IID+MWcVZj542EY71BtySmqiqJjlVi8uRi/fmONZft9ZcoI9OjUBpc8sQiqwCVn9MDMyefh7a/24OIzeqBHp7Yxn1dRXYsMEbTO8t/A9Jo0f+m1hAk9aIz3XyItYqP+/BkOl1VhcO/GrlgiwKt5uzH9rbU4Wl6Nn48eEFpvabCRYjW59O7SDnuPNt4mMG/nEfSfPq/h71/MWQUA2PGnCb7vl3zpE4uwtci+brbRZ0CfbCzCN3//QbPP+fju0bj0icXo1DYLNbWKDX8cZ1t8qaiorsX8ggO469XVzW73izHfwG/HnRHxPDcJVEI/XFYVcVei757VE/d/7yyc1tW52dFiqavTxsRrcVu02Zx2z+v5eGNl5IRlX+062rBcVlnTMLfKobJKqGpEIl23L7XeQSeM2SAraxo/MOGhl5RXo+hYBQad0ikiocfTf/o8/HXSOS1u17md+Tm5VdUVXxIb9pdi/F+XtLjdfw7vi3/a3KYcrf5erMcqQncjypk2F/dOOLOhApAuizcX42BpBd5bsx+DenbEM0t2JLWfmQu3YebCbQCAr+67DB+tb9Lpz1GBSeixBrMsWH8QC1z2DwGAAb+bh/7dO1i6z5Yq5McqqnHOQx/FbROMdqS8Gn+ZvwkAUFldF5HMAWDhpqKk4qxX3x3sxS924jdhNSIglEgvf3IxDpRWxH3+kt9cjB4ntcGg389vWHfnK6tbPG5mhvlmgUWbizFmUA/T26eq/qyq/kvkna/2xq1Rvnf7KAzpfVKTL5xHrz476eMfLqvC18crMbBnJwChprixjy9KuIfRI/M24JF5oRkzV/7+0qTjMevr45W44fnGbq2LN1szqPHcGLesdFogEnqqIxPT6cN1oYE3Ow6VAQDq78r16caDOLdPV3Tt0BoV1bUY9+RivHXrhTi5Q+uE9h/+8d5WfByXPL4o5Zhf+LywyTqr2hbLw+Ztr09OhV/HTiCFMybGXPde/j7c8fJXlsQTbsqLK7H54fGW7zeWQ8crkfvwx/jj94dg7Z6jMad7/v3EM3HzRfbVfE/u0Dri/ZaVmYHFv7m42efMLziAqS+tjPv4eQ9/bFl8qRzj5lH98bOL+qNX53bNbldyohpDH3TvPWZ9n9Cjk/nD3x+CySP6AQg1bcxZsQv3vWPv3XsSccuLkW/+/3o9H//1en7MbWPd1Pqktlm4Y+xA/DC3Dzq2zcLGA6WY+FRjF7tbXgq1KS/ZcqjZZP7CTd+OW/usrVN843fzYj4WrqyypuFq/4PvrcOA7I4tPida/c0s/vDuuphfHC3FCgDfG3oqMjMEtxrt6VZJ5+jUncaXWLz36vZHJ6TUg8ku44ac0uSLdvKzy7F06yGHIgLu+e43cfvYgUk9t3O7ViicMTGhxD7/rosw7smWm8Ss4OuEXmjUchv+jnpjZWQIrh/RD9cbCf7xBZvwt0+3pi2+cAV7S3DF31Lv21xaURNxSmvW/VechRtG9mvSWyWWzAxpeC2ra+sw8N7YF8YGP/AhgNC8Fhv2R7ap13/RtnSxcs7yXXH7EreUyMM51S/YKvm7jzZZ16F1JtY95M6LjM156ebhAEJNSM8t3YF+3TrgsrN6Wn6cHX+agP7T50Ek9IVn5fWO+sQe/j6OdvOo/nh26Q4M6N4RPxvVH88tTa7dPhHi1Pif3NxczcvLs23/0RfpYp2Ox1JTW4fT4ySocPH2V11bh7LKGnRp33JTiNmaLhAaStyhTSYOllYCALq0b2XJKFKzr4tZL35RiPv+tc7SfUZ76WfDMWpg4jNLhL8nrjnvNDx27dAm2+w4VIaLH1toep+pvH7/Wr0Xp/foiMGndo67TV7hYVwz64sm64PQa8frVBWqoYrjw++vx7NRCT3Z946IrFTV3FiP+baGHp7MF94zxvTzsjIzUDhjImpq6/D9//fvhOdyufu1fLyXvy/uP+vZJdvxsIlbqH30q9ENF58SVd8/vL4P8tTvfAOzFoWuzPfq3Bb7S0IXE61O5gBw/cgcXD8yx3TPC7Oe/0kuxp6ZWi0uPAG+sXJPzISeirGPL8QPzu1t+nS+/iJtrP/DJxsO4mf/v2mF5583D8cFp/timiTfE5GGXmWd2prvPZUK3yb0cDlJ9BjJyszA+3eE7g1YVlnT0HzQsM+wtvneXdph6W8vhojgvfx9AEK17/r2300HjuGq//l3s8e77vw++NMPvpVwnLFkZAiuze2Da3P7RKyftWgbJp7dC88u3WH7jWzP7HVSQ6Lae/QELpzxaULP/+UlA3H3Zd+0PK7603AgNB/L2afFrx0nantxGR5bsNlUQo93Zny8sgZDot5r9bY8Mh6tLB4eT+kxdcwALNxcFNH11w6+bHIZ/ujHDU0TVp6aWt1bpudJbbD0t2PT+iFVVTy7ZAd+ckGOL0fumRH+f4yuHSfa5DJr8jBMfanpxdbnb8zF2DPin1GEN+0VzpiIiupanHHf/JjbsnnFP5p775kVuCaX+mQOWDtpfv0/YPHm4oh+rYn466RzcNU5vS2LKVEikvZBHW5T8ODlcWvBiYqVzAHgpy9EVla6d2yDz6eNReusDKgqbv9nYzfKeBUFO5rEyFlTRg/A7MXbMXlEX1v277uE/tnGxgEtdn0gRn8zO2Lfy7d/jR/FmBhq4T1jUFZVg6LSSowZlM1alkuEz1X9yNz1uHfiWbYf89DxyhaHyddb/9Dljt45nuwzffwZ+PHwvujXzdqBg/V896656YX0341++IBuzX55DD41jcFQQp5ZsiMioSfTBBndJFJXp3jo/fVx+83HkpUh2PTweNtm2SR3EBHbkjngs4QePt3ntkeb9gslqrf54fGma8zxfHjXaAw6pWlPpIwMwR+uHIw/XNl4a93Kmlrc9cpqfFAQGgk8ckA3vPDTb6NNVmZKMRCF81VCHxDWp5s1HWpO+AXhf3xRiBtG5iT0/EW/HpNQTatNViZmTj4voWMQJco33RzCT5Vvv/h0ByMhr7k/wYFQ/bq1t/W0mShZvkno099qvJnyPZcPcjAS8ootjyQ3sdaiXzc/IRWRU3yT0F/5crfTIZDHhPf//9fqvc1s2Wj57y6xKxyilPkioT+7ZHvD8lf3XeZgJORVZuZKB4CeJ8W+zRqRG/gioYfPjdI1wfnBKdjyH/iu6W3XP3S5jZEQpc4XCZ0oWeG3nCs+1jjC+PEYE3dxsA+5necT+u6w21/l32++tkUU7duPNN7ZJiszstvrinvZdk7u5+mEvvFAKS76y2cNf3dun54pKslf3rntwobl8HGivw7rLdWjE9vOyf08ew6pqmm7rRP52zl9ujQsvxbWW+q2i0/HbRzTQB7i2Rr6vpLIO75v8OCtuMh9/r54e8sbEbmU5xL6loPHcMPzK5rcMKFda86JQckreJA9WMj7PJfQZy3ajsWbiyPWTRt/hkPRkF+ET6kLmO+XTuQmnkvon20qarJu6ne+4UAk5DccBUpe57mEvmx65IfugzsvcigS8pvwUaDv3zHKwUiIktNiLxcRGQTg1bBVAwDcr6pPhm0jAP4KYAKAcgA3qmrse3OlKHza0+vO74sze51kx2EooHjbN/KyFhO6qm4CcA4AiEgmgL0A3o7abDyAgcbPcAAzjd+24IeOiKipRJtcLgGwTVV3Rq2/CsA/NGQZgC4i0suSCImIyJREE/okAC/HWN8bQPj8tXuMdURElCamE7qItAZwJYDXYz0cY12Tu+2KyBQRyRORvOLi4hhPISKiZCVSQx8PYJWqHozx2B4AfcL+Pg3AvuiNVHW2quaqam52dnZikRIRUbMSSejXIXZzCwC8C+AGCRkBoERV96ccHRERmWZqci4RaQ/gMgC3hK2bCgCqOgvAPIS6LG5FqNviTZZHSkREzTKV0FW1HEC3qHWzwpYVwG3WhkZERInw3EhRIiKKTUKVawcOLFIMILo/u1ndARyyMBy3Cko5geCUleX0FyfK2U9VY/YqcSyhp0JE8lQ11+k47BaUcgLBKSvL6S9uKyebXIiIfIIJnYjIJ7ya0Gc7HUCaBKWcQHDKynL6i6vK6ck2dCIiasqrNXQiIorChE5E5BOeS+giMk5ENonIVhGZ5nQ8sYjI8yJSJCIFYetOFpGPRGSL8btr2GPTjfJsEpHLw9afJyJrjceeMu4MBRFpIyKvGuuXi0hO2HN+Yhxji4j8xOZy9hGRz0Rkg4isE5E7/VhWEWkrIitEJN8o54N+LGfY8TJF5CsRed+v5RSRQiO+1SKS55tyqqpnfgBkAtiG0G3wWgPIB3CW03HFiHM0gGEACsLW/QXANGN5GoA/G8tnGeVoA6C/Ub5M47EVAEYiND3xBwDGG+tvBTDLWJ4E4FVj+WQA243fXY3lrjaWsxeAYcZyJwCbjfL4qqxGTB2N5VYAlgMY4bdyhpX3bgD/BPC+j9+7hQC6R63zfDltT24W/xNGAvgw7O/pAKY7HVecWHMQmdA3AehlLPcCsClWGQB8aJSzF4CNYeuvA/D38G2M5SyERqpJ+DbGY38HcF0ay/wvhCZx821ZAbQHsAqhWyz6rpwITX39CYCxaEzofixnIZomdM+X02tNLl6+M1JPNaYUNn73MNbHK1NvYzl6fcRzVLUGQAlCk6c59voYp5TnIlR79V1ZjWaI1QCKAHykqr4sJ4AnAfwGQF3YOj+WUwEsEJGVIjLFWOf5cpqabdFFTN0ZyWPilam5sibzHNuISEcAbwK4S1VLjWbEmJvGWOeJsqpqLYBzRKQLgLdFZEgzm3uynCJyBYAiVV0pImPMPCXGOteX03Chqu4TkR4APhKRjc1s65lyeq2GburOSC51UIwbZxu/i4z18cq0x1iOXh/xHBHJAtAZwOFm9mUbEWmFUDKfo6pvGat9WVYAUNWjABYCGAf/lfNCAFeKSCGAVwCMFZGX4L9yQlX3Gb+LALwN4Hz4oZx2tVHZ1O6VhdBFhP5ovCg62Om44sSag8g29P9G5AWXvxjLgxF5wWU7Gi+4fInQxbf6Cy4TjPW3IfKCy2vG8skAdiB0saWrsXyyjWUUAP8A8GTUel+VFUA2gC7GcjsASwBc4bdyRpV5DBrb0H1VTgAdAHQKW/4coS9oz5fT1jeFTf+MCQj1ptgG4F6n44kT48sA9gOoRugb+WcItZ99AmCL8fvksO3vNcqzCcZVcmN9LoAC47Gn0Tiyty1CN+veitBV9gFhz/mpsX4rgJtsLucohE4X1wBYbfxM8FtZAXwLwFdGOQsA3G+s91U5o8o8Bo0J3VflRKiXXL7xsw5GHvFDOTn0n4jIJ7zWhk5ERHEwoRMR+QQTOhGRTzChExH5BBM6EZFPMKETEfkEEzoRkU/8H9I03J2ZTgJ8AAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Load basic info\n",
    "filename = 'sdhdf_test_data/uwl_191208_055418.hdf'\n",
    "n_subband = len(s.data.beam_0._subbands)\n",
    "wf0       = s.data.beam_0._subbands[0].astronomy_data.data\n",
    "freq_axis = wf0.freq_axis\n",
    "n_freq    = wf0._data.shape[freq_axis]\n",
    "\n",
    "# Create empty virtual layout\n",
    "lshape = list(wf0._data.shape)\n",
    "lshape[freq_axis] *= n_subband\n",
    "layout  = h5py.VirtualLayout(shape=tuple(lshape), dtype=\"<f4\")\n",
    "\n",
    "# Fill virtual layout with data\n",
    "for ii, sb in enumerate(s.data.beam_0._subbands):\n",
    "    sb_shape  = sb.astronomy_data.data._data.shape\n",
    "    dpath = f'beam_0/{sb.name}/astronomy_data/data'\n",
    "    sb_source = h5py.VirtualSource(filename, dpath, shape=sb_shape)\n",
    "    layout[..., n_freq*ii:n_freq*(ii+1), :] = sb_source\n",
    "\n",
    "# Create a virtual dataset\n",
    "with h5py.File(\"VDS.h5\", 'w', libver='latest') as f:\n",
    "    f.create_virtual_dataset('data', layout, fillvalue=-5)\n",
    "\n",
    "# Open virtual dataset\n",
    "h = h5py.File(\"VDS.h5\", \"r\")\n",
    "d = h['data'][:,:,0].mean(axis=(0, 1, -1))\n",
    "plt.plot(np.log10(d))\n",
    "h.close()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 81,
   "id": "3e4f0214-117c-4096-a71c-eb730056e14b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x7fec44af2100>]"
      ]
     },
     "execution_count": 81,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "id": "75ac3991-4359-4309-b898-4892620f6730",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "262144"
      ]
     },
     "execution_count": 45,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "n_subband = len(s.data.beam_0._subbands)\n",
    "wf0 = s.data.beam_0._subbands[0].astronomy_data.data\n",
    "freq_axis = wf0.freq_axis\n",
    "n_freq    = wf0._data.shape[freq_axis]\n",
    "n_freq"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "id": "bfa82304-0225-4c45-aec3-37e58aaac447",
   "metadata": {},
   "outputs": [],
   "source": [
    "layout = h5py.VirtualLayout(shape=(4, 100), dtype='i4')\n",
    "\n",
    "for n in range(1, 5):\n",
    "    filename = \"{}.h5\".format(n)\n",
    "    vsource = h5py.VirtualSource(filename, 'data', shape=(100,))\n",
    "    layout[n - 1] = vsource\n",
    "\n",
    "# Add virtual dataset to output file\n",
    "with h5py.File(\"VDS.h5\", 'w', libver='latest') as f:\n",
    "    f.create_virtual_dataset('data', layout, fillvalue=-5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "id": "5bab0168-552b-463d-bb1b-88944d9c4135",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<h5py._hl.vds.VirtualLayout at 0x7fec22c26a60>"
      ]
     },
     "execution_count": 57,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "layout"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "id": "094b51ae-3d1c-4fff-9239-00d309166744",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(182, 1, 4, 262144, 1)"
      ]
     },
     "execution_count": 42,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "s.data.beam_0._subbands[0].astronomy_data.data._data.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "bab18d7b-d0ab-448b-bd72-13a498572ed4",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
